package com.ctshk.rpc.visa.service;


import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.visa.dto.visa.*;
import com.ctshk.rpc.visa.req.visa.*;

import java.util.List;

/**
 * <p>
 * 签证资源 服务类
 * </p>
 *
 * @author 陈雷
 * @since 2021-01-20
 */
public interface IVisaService {
    /**
     * 签证详情
     * @param visaInfoReq
     * @return
     */
    Result<VisaInfoResp> query(VisaInfoReq visaInfoReq);

    /**
     * 签证列表
     * @param visaListReq
     * @return
     */
    PageResponse<VisaListDTO> list(VisaListReq visaListReq);

    /**
     * 签证修改
     * @param visaUpdateReq
     * @return
     */
    Long update(VisaUpdateReq visaUpdateReq);

    /**
     * 签证新增
     * @param visaSaveReq
     * @return
     */
    Long add(VisaSaveReq visaSaveReq,TokenUser user);

    /**
     * 签证售卖管理列表
     * @param
     * @return
     */
    PageResponse<VisaSellListRespDTO> sellList(VisaListReq visaListReq);

    /**
     * 签证售卖管理列表2
     * @param
     * @return
     */
    PageResponse<VisaSellListDTO> sellList2(VisaListReq visaListReq);


    /**
     * 签证列表
     * @param visaListReq
     * @return
     */
    Result<List<VisaListDTO>> visaList(VisaListReq visaListReq);

    /**
     * 预订中心签证办理详情
     * @param visaInfoReq
     * @return
     */
    Result<VisaHandleResp> visaHandleQuery(VisaInfoReq visaInfoReq);

    /**
     * 团订单（旅行团、定制包团）列表
     * @param visaListReq
     * @return
     */
    Result<List<VisaListGroupDTO>> visaGroupList(VisaListReq visaListReq);

    /**
     * 团订单（旅行团、定制包团）获取价格
     * @param visaGroupPriceReq
     * @return VisaListGroupDTO
     */
    Result<VisaGroupDetailDTO> visaGroupDetail(VisaGroupPriceReq visaGroupPriceReq);

    /**
     * 根据ID列表获取签证详情（内部接口）- 叶冠峰
     * @param visaIdList
     */
    List<TripVisaDTO> queryByIdList(List<Long> visaIdList);
}
